.op
.po8
.pl72
.heZX-Spectrum                - # -                     80k+CP/M

               CP/M-Modus +80k-RAM f}r ZX-Spectrum

(c) W.Tepler, Schleusingen

Zie diese Rechnererweiterun is di Realisierun einer 
Hardware-Umgebung di堠 da Aufsetze eine CP/M-System 
erm|glicht Di Original-Hardwar de Z gestatte da au Grun 
des von 0h bis 3FFFh liegenden ROM nicht ohne [nderung.

                            Hardware:

Di Grundidee de realisierte L|sun is folgende De ZX wir 
al Rechnerversio mi 16 RA betrachtet de mi seine Ein- 
un Ausgabefunktione eine Rechne mi 64 RA bedient Da is 
m|glich d di UL de untere 16k-RAM-Bloc i Original-ZX 
(einschlie~lic de dari enthaltene Bildspeichers autono 
verwaltet d.h st{ndige Auslese un dami verbundene Refres 
de Speicher-IC's Diese RAM-Bereic kan als zeitweis vo de 
CPՠ getrenn werden ohn da dadurc ei Informationsverlus 
auftritt Ein Ver{nderun de RAM-Inhaltes als z.B Setze vo 
Bildpixel is i diese Zeite nat}rlic nich m|glich F} 
derartig Manipulatione mu de RAM-Bereic ers wiede unte 
den Zugriff der CPU geschaltet werden.
Di Aus- un Einblendun de Speicherbereich erfolg }be I/O-
Befehle ein堠 entsprechend Adressdekodierun砠 un䠠 darau 
abgeleitet Schaltoperationen Zweck Kompatibilit{ zu ZXS-12 
wurde di dor gebr{uchliche "Schalt"adresse hie ebenfall 
verwendet.
I de realisierte Schaltun (sieh Schaltbild) di bereit zu 
Plenarveranstaltun de A Mikrorechentechni Berli i Dezembe 
198 vorgestell wurde werde inzwische nu noc DDR-Bauelemen
t benutzt Di Leiterplatt (3,5 x 4,5 cm) finde ohn Problem 
i jede ZX Platz 
Geteste wurd di Schaltun bereit erfolgreic i de bekannte 
ZXS-Variante Issu  bi 6. Au~er den Leitungen 
               - /US (ULA-Select)
               - RS  (RAM-Select) und
               - A15 (Bank-Select)
werde all Leitunge direk a di Z80-CPՠ gef}hrt Di 
zus{tzlic gewonnene Adressignal A1 un A1 k|nne be Bedar 
f} da Bankin gr|~ere EPROM' (z.B  verschieden 
Betriebssystem umschaltba i eine 2725  verwende werden 
Be eingebaute Schaltun is de Original-Zustan de ZXӠ al 
ein Variant nebe andere selbstverst{ndlic ausw{hlbar Di 
vorhandene Software ist also weiterhin voll nutzbar.
 
 Hinweise zum Einbau:

     - /USdezuULAPi3f}hrend Leiterzu mu 
           unterbrochen werden, daf}r wird /US an Pin 37 der 
           ULA gef}hrt
     - RS: Issue 2-4 : der zu Pin 10 des IC 24 (74LS00) f}hrende
           Leiterzug wird unterbrochen und durch RS ersetzt
           Issu   de zu Pi 3 de I 2 (Adress-Arbiter 
           f}hrend Leiterzu wir durc RӠ ersetz (vorhe 
           wieder Auftrennung des Original-Leiterzuges;
       mi RӠ is auc ei Deselektiere de interne RA͠ a 
       8000h {hnlich /ROMCS m|glich !
.pa
     - RA-A15 wir a de Multiplexe angeschlossen wichti 
                dabei ist, da~ A14 der CPU und RA am Multiplexer
                anliegen z.B Br}ck OK un RA-A1 a Pi 1 
                des IC 26 (74LS157) anschlie~en (Issue 6 ?)
       da Adressigna A1 f} di RAM-Selektierun wir s 
       verwaltet da nac eine Rese de RA vo 8000 bi 
       FFFF gleic de aktuelle RAM-Ban a 8000 ist di 
       Schaltung erlaubt nun ein Umschalten des Speicherbereiches
       0000h-7FFF au de Bereic 8000h-FFFFh dadurc is 
       normalen ZXS-Modus ein Zugang zu dieser RAM-Bank m|glich

           
                            Software:

 Die Schaltung erlaubt grunds{tzlich 2 Beriebsarten:

     1. 2x 32k-RAM-B{nke ab 8000h, umschaltbar 

     2. CP/M-Modus mit 64k RAM von 0000h bis FFFFh

 Di zu Speicherverwaltun verwendet Adress is FDh De 
entsprechend Speichermodifizierungsbefeh i Z80-Mnemoni laute 
daher z.B. 
               OUT (FDh), 01xx xxxx

     - Bit 0 bis Bit 5 sind je nach Schaltziel belegt
     - Bit 6 = 1
     - Bi   ein Verwendun de BC-Register is dahe 
                    nicht notwendig
 
 trotzdem ist aber auch folgende Befehlsfolge m|glich
               LD BC, 7FFDh
               OUT (C), A

     de Akk mu nat}rlic vorhe sinnvol젠 mi eine 
     "Schaltbyte" geladen werden,
     Bi  steuer hierbe di Umschaltun zwische ZXS- un 
     CP/M-Modus
               Bit 3 = 0 -> ZXS-Modus
     Bit 0  steuert die Umschaltung der RAM-B{nke
               Bit 0 = 0 -> RAM-Bank ab 8000h im ZXS-Modus ist
                            gleich der RAM-Bank ab 8000h im CP/M
     mi Rese is ein  be ISO-RO͠ soga verlustlos  
     R}ckkehr in den ZXS-Modus m|glich,
     i CP/M-Modu is da Bi  unwirksam d A1 da h|chst 
     Adressbi bildet dadurc wir ei evtl Bank-Switchin 
     unter CP/M verhindert, wodurch es zum Systemabsturz k{me

     Umschaltung der RAM-B{nke
          
          * in Z80-Mnemonik

          LD A, 40h      ; f}r RAM-Bank 1 ab 8000h
          OUT (FDh),A    ;

          LD A, 41h      ; f}r RAM-Bank 0 ab 8000h
          OUT (FDh),A    ;
.pa
          * in BASIC

          1 CLEA 32762 RE Stac retten d.h i de untere 
                           16k-RAM bringen     
          20 OUT 32765, 1 (bzw. 0)

     ]bergang in den CP/M-Modus

          - Stack darf nicht weggeschaltet werden
          - Interrup mu wege weiterlaufende Interrupt-
            Generierun durc di UL entwede abgeschalte 
            werde (DI ode durc ein entsprechend Interrupt-
            Routine abgefangen werden

               LD A, 48h      ;
               OUT(FDh),A     ; -> CP/M

               LD A, 40h      ;
               OUT(FDh),A     ; -> ZXS-Modus


     Varianten von 80kCOPY

       Al konkret Anwendun de Speicherumschaltun wurde 
        Varianten des Programmes "80kCOPY" erstellt.

          * 80QCOPYT     :    doppelte Geschwindigkeit beim
                              Laden und Saven

          * 80NCOPYT     :    normale Geschwindigkeit beim
                              Laden und Saven

          80UCOPYԠ    :    normale Lade un doppelt 
                              Geschwindigkeit beim Saven
       
       Diese Programme m}~ten unabh{ngig von der installierten
       ROM-Version laufen. Da der eigentliche Maschinencode in
       eine REM-Zeil de BASIC-Programm steht dar kei 
       weiterer Kanal ge|ffnet sein (z.B. BetaDisk, Interface 1),
       sons komm e zu einer absolutnVerschiebun de 
       BASIC-Programm (verursach durc Ausdehnun de Kanal-
       Datenbereich zwische System-Variable un Begin de 
       BASIC-Programmes un dami is de Maschinencod auc 
       nich meh lauff{hig Ei Kaltstar vo de Lade de 
       jeweiligen Programmes ist daher g}nstig.


     BIOS-Problem

       Zu Installiere vo CP/ mu nat}rlic de hardware-
       abh{ngige Teil BIOS an die konkreten Verh{ltnisse des ZXS
       angepa~ bzw ne geschriebe werden Bi zu jetzige 
       Zeitpunkt (Ende April 1988) ist dieses Problem noch nicht 
       gel|st. Vielleicht sind Sie dazu in der Lage !?!
       E existiere auc bereit Vorstellunge }be di 
       Implementierung der Betriebssysteme von Z1013 und KC85/x.
       Mit einer neuen Bildschirmroutine ist auch ein im RAM 
       laufendes ZXS-Betriebssystem vorstellbar.
.pa
                  Anschlussbelegung der Platine

                                          Ma~e: 3,5 x 4,5 cm   
        ____________________________________________________
        :                                                  :
        :   * RS=/US                    *   *   *   *      :
        :                                   RA      RA     :
        :                                                  :
        :   -----------------   .   ---------------        :
        :   !     IC 1      !   !   !     IC 2    !        :
        :   !    DL 002     !   =10 !    DL 002   !        :
        :   !1              !   !nF !1            !        :
        :   -----------------   .   ---------------        :
        :                                                  :
        :   *   *   *    *     *   *      D3  D0           :
        :  /WR /IO  A1   A15  0V  +5V      *   *           :
        :                                                  :
        :   -----------------       ---------------        :
        :   !     IC 3      !       !     IC 4    !        :
        :   !    DL 030     !       !    DL 175   !        :
        :   !1              !       !1            !        :
        :   -----------------       ---------------        :
        :   *  *  *  *  *  *        *  *  *  *  *  *  *    :
        :  A0  A2 A5 A6 A7 A14  /Reset R14   D4 D5    R15  :
        :                                                  :
        :___________________________________________________


                        **** E N D E ****